1. Field of the Invention
The present invention generally relates to packet switches, and more particularly to performing arbitration in a packet switch.
2. Description of Related Art
Modern telecommunication networks include packet switching networks for transmitting data from a source device to a destination device. The packet switching network routes data packets through a network of interconnected packet switches based on destination addresses in the data packets. An individual packet switch in the packet switching network routes data packets from input ports to output ports of the packet switch.
Because the packet switch may receive multiple data packets at the input ports that are destined for the same output port, the packet switch often includes an arbiter that determines an order for routing data packets through the packet switch. The input ports of the packet switch issue grant requests to the arbiter for routing data contained in data packets to the output ports. The arbiter then determines whether the output port identified by each grant request is available to receive data. If an output port identified by a grant request is available to receive data, the arbiter selects a grant request that identifies the output port and issues a grant to the input port that issued the selected grant request. The packet switch then routes data contained in a data packet of each input port that received a grant to the output port identified by the selected grant request issued by the input port.
The arbiter may also receive a grant request for routing a data packet from an input port to multiple output ports. The grant request typically includes a destination address that identifies a multicast group containing the multiple output ports. The arbiter determines whether each output port of the multicast group is available to receive data of the data packet. If each output port of the multicast group is available, the arbiter can select the grant request and issue a grant to the input port that issued the selected grant request. The packet switch then routes the data of the data packet to each output port of the multicast group. Determining whether each output port of the multicast group is available to receive data of a data packet is a time consuming process, which may affect the performance of the packet switch.
In light of the above, a need exists for reducing the time required for an arbiter to select a data packet for routing through a packet switch. A further need exists for reducing the time required for an arbiter to determine whether multiple output ports of a packet switch are available to receive data of a data packet.